{"cells":[{"cell_type":"markdown","metadata":{},"source":["# Label party tweets using our finetuned elite criticism XLM-T classifier\n","\n","*author:* Hauke Licht\n","\n","In this notebook, I apply the XLM-T multilingual Twitter language model finetuned on labeled tweets for detecting elite criticism (anti-elite messages) to all parties' tweets.\n"]},{"cell_type":"markdown","metadata":{"id":"HkNSzbwScckH"},"source":["## Setup"]},{"cell_type":"markdown","metadata":{"id":"1uQ5JgSHg_VQ"},"source":["Install required packages:"]},{"cell_type":"code","execution_count":null,"metadata":{"executionInfo":{"elapsed":22356,"status":"ok","timestamp":1690465324958,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"nKftOu9fyC8R"},"outputs":[],"source":["# %%capture\n","# !pip3 install --upgrade pip\n","# !pip3 install sentencepiece==0.1.96\n","# !pip3 insatll tokenizers==0.12.1\n","# !pip3 install transformers==4.19.2"]},{"cell_type":"markdown","metadata":{"id":"8X7ISk4khCWR"},"source":["Load modules:"]},{"cell_type":"code","execution_count":1,"metadata":{"executionInfo":{"elapsed":4573,"status":"ok","timestamp":1690465329527,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"Y5f1fFbETSbM"},"outputs":[],"source":["import os\n","import gc\n","from tqdm.notebook import tqdm\n","import re\n","\n","import numpy as np\n","import pandas as pd\n","\n","from transformers import (\n","    AutoTokenizer,\n","    AutoModelForSequenceClassification,\n",")\n","import torch\n","from torch import nn"]},{"cell_type":"code","execution_count":3,"metadata":{"executionInfo":{"elapsed":2,"status":"ok","timestamp":1690465331240,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"AYOhzvayKMq7"},"outputs":[],"source":["import os\n","base_path = os.path.join('..', '..')\n","data_path = os.path.join(base_path, 'data')\n","fits_path = os.path.join(data_path, 'fits')\n","output_path = os.path.join(data_path, 'output')"]},{"cell_type":"markdown","metadata":{"id":"6E5zwGZEvCJa"},"source":["### Load and prepare data"]},{"cell_type":"code","execution_count":20,"metadata":{"executionInfo":{"elapsed":9395,"status":"ok","timestamp":1690465349159,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"C8CA6BOfvCJa"},"outputs":[],"source":["col_types = {\n","  'id': str,\n","  'text': str,\n","}\n","fp = os.path.join(data_path, 'input', 'all_tweets_texts.csv')\n","tweets = pd.read_csv(fp, dtype = col_types)"]},{"cell_type":"code","execution_count":21,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":462,"status":"ok","timestamp":1690465349619,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"02V1R2LJvCJa","outputId":"f0dc7c9a-41c1-4566-a0e5-ee7453b3eaaa"},"outputs":[{"data":{"text/plain":["819726"]},"execution_count":21,"metadata":{},"output_type":"execute_result"}],"source":["tweets.drop_duplicates(inplace = True, ignore_index = True)\n","len(tweets)"]},{"cell_type":"code","execution_count":30,"metadata":{"executionInfo":{"elapsed":18243,"status":"ok","timestamp":1690465367860,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"UpZvg407vCJa"},"outputs":[],"source":["# helper to preprocess tweets' texts (see https://huggingface.co/cardiffnlp/twitter-xlm-roberta-base)\n","def preprocess_tweet_text(text, handle_regex = r\"@[A-Za-z0-9_]{4,15}\"):\n","  # convert spaces\n","  text = re.sub(r\"\\s+\", u\"\\x20\", text)\n","  new_text = []\n","  for t in text.split(u\"\\x20\"):\n","    t = re.sub(handle_regex, \"@user\", t) if re.search(handle_regex, t) and len(t) > 1 else t\n","    t = 'http' if t.startswith('http') else t\n","    new_text.append(t)\n","  return u\"\\x20\".join(new_text)\n","\n","tweets[\"text\"] = tweets.text.apply(preprocess_tweet_text)"]},{"cell_type":"code","execution_count":23,"metadata":{},"outputs":[],"source":["# separate values in 'id' into columns 'user_id' and 'status_id' and overwrite 'id'\n","tweets[['user_id', 'status_id']] = tweets[\"id\"].str.split(\"_\", expand = True).rename(columns = {0: 'user_id', 1: 'status_id'})"]},{"cell_type":"code","execution_count":24,"metadata":{},"outputs":[],"source":["tweets = tweets[['user_id', 'status_id', 'text']]"]},{"cell_type":"markdown","metadata":{"id":"kRcKCXyuuC3c"},"source":["## Apply model to tweets' texts"]},{"cell_type":"code","execution_count":4,"metadata":{},"outputs":[],"source":["model_path = os.path.join(fits_path, 'xlmt-elitecriticism-classifier')"]},{"cell_type":"code","execution_count":5,"metadata":{"executionInfo":{"elapsed":8540,"status":"ok","timestamp":1690465339778,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"9VztCCxRp1KO"},"outputs":[],"source":["# load tokenizer\n","tokenizer = AutoTokenizer.from_pretrained(model_path)\n","\n","# load classifier\n","clf = AutoModelForSequenceClassification.from_pretrained(model_path)\n","device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n","if device != \"cpu\":\n","    clf = clf.to(device)"]},{"cell_type":"code","execution_count":26,"metadata":{"executionInfo":{"elapsed":16,"status":"ok","timestamp":1690465339779,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"HXAO0Nz7yvlo"},"outputs":[],"source":["def get_pred_probs_positive_class(texts: list):\n","  # tokenize\n","  inputs = tokenizer(texts, return_tensors = \"pt\", padding = True, truncation = True).to(device)\n","  # generate logits\n","  outputs = clf(**inputs)\n","  # induce pred. probs\n","  preds = nn.functional.softmax(outputs.logits, dim = 1).cpu().detach().numpy()\n","  # return pred. probs. for positive class\n","  return preds[:,1]\n","\n","def predict_and_save(df, fp, batch_size=16, out_cols=[\"user_id\", \"status_id\"]):\n","  \"\"\"\n","  Take data frame with tweets' texts, predict probabilities they contain general elite criticism, and write the result to a TSV file.\n","  \"\"\"\n","  # split df into batches of `batch_size` rows\n","  n_batches = len(df) // batch_size\n","  batches = np.array_split(df, n_batches)\n","\n","  # cols to export\n","  cols = out_cols+[\"pred_prob\"]\n","\n","  # list to collect pred. probs\n","  pred_probs = list()\n","\n","  # iterate over batches\n","  for i, batch in tqdm(enumerate(batches), total = n_batches):\n","    # get texts\n","    texts = batch.text.values.tolist()\n","    # get pred. probs\n","    batch[\"pred_prob\"] = get_pred_probs_positive_class(texts)\n","    # subset batch df to required columns\n","    batch = batch[cols]\n","    # append to file\n","    batch.to_csv(\n","      fp,\n","      sep = \"\\t\",                     # tab-separated (i.e., TSV)\n","      index = False,                  # omit index\n","      mode = \"w\" if i == 0 else \"a\",  # append after first batch\n","      header = i == 0\n","    )\n","    # append to list\n","    pred_probs.append( batch )\n","\n","  # return list of pred. probs.\n","  return pred_probs"]},{"cell_type":"code","execution_count":29,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":66,"referenced_widgets":["f3b64886743942ed9280e91a91995b0b","29b75d41e77e4487b242209ced94a97c","edc8e63704e74e79856d5164ccece54c","57bf002662204c1f8caea318653fc6bb","660d5a80a16740e3a6a02dee2bdd0e59","0f2360e1ce1147f99060558c58d8d1c6","65a473373b2048739e8c7326ec86dfbf","de1628ef8b074b4d8c48363365b0c7a0","e52eb06aa0d749e1951533c1f93fbdbe","90882b249b1f4a8485d5acc55819570b","c41931b067ad4678aaca5ce1d784635d"]},"executionInfo":{"elapsed":2045484,"status":"ok","timestamp":1690467413324,"user":{"displayName":"Hauke Licht","userId":"08677829241257108446"},"user_tz":-120},"id":"71vIEiZklQ5R","outputId":"4ebc2bec-fc7d-46ed-ac00-2b3cf56f31f1"},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"bd6f580b00c84fb3b9febd982e26661d","version_major":2,"version_minor":0},"text/plain":["  0%|          | 0/312 [00:00<?, ?it/s]"]},"metadata":{},"output_type":"display_data"}],"source":["TEST = True # !!! test mode\n","\n","out_fp = os.path.join(output_path, 'all_tweets_classified_elitecriticism.csv')\n","if TEST:\n","    tweets = tweets.sample(5000, random_state = 1234)\n","    out_fp = os.path.join(data_path, 'testdata', 'test_tweets_classified_elitecriticism.csv')\n","\n","preds = predict_and_save(tweets, fp=out_fp)"]}],"metadata":{"accelerator":"GPU","colab":{"authorship_tag":"ABX9TyOcHadoTxBv11GxQgH/YM1d","collapsed_sections":["7cZq0AnnuKwf","6E5zwGZEvCJa"],"gpuType":"T4","provenance":[],"toc_visible":true},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.12"},"widgets":{"application/vnd.jupyter.widget-state+json":{"0f2360e1ce1147f99060558c58d8d1c6":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"29b75d41e77e4487b242209ced94a97c":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_0f2360e1ce1147f99060558c58d8d1c6","placeholder":"​","style":"IPY_MODEL_65a473373b2048739e8c7326ec86dfbf","value":"100%"}},"2caa31a4a62d4f6dab21d7928e7bf023":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3206b3fbf3a24ba3ad4dbdb3bc99d89b":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"3b7f7441c1c6402985f0201a6bc1f146":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"44a995d1af68417abfefc62f59da6085":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_d512b036bb2c4d0980bcc572c3d9c45d","max":15326,"min":0,"orientation":"horizontal","style":"IPY_MODEL_3b7f7441c1c6402985f0201a6bc1f146","value":192}},"45097845718b42de96a5bc519b94e92f":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"4dec0cb8b9aa4af1b87aa2a435f0513b":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_569ef7657e0243c0ade8b24bc74aead7","placeholder":"​","style":"IPY_MODEL_2caa31a4a62d4f6dab21d7928e7bf023","value":"  1%"}},"569ef7657e0243c0ade8b24bc74aead7":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"57bf002662204c1f8caea318653fc6bb":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_90882b249b1f4a8485d5acc55819570b","placeholder":"​","style":"IPY_MODEL_c41931b067ad4678aaca5ce1d784635d","value":" 36147/36147 [34:01&lt;00:00, 13.49it/s]"}},"65a473373b2048739e8c7326ec86dfbf":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"660d5a80a16740e3a6a02dee2bdd0e59":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"90882b249b1f4a8485d5acc55819570b":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9195a98238784c4dbc31432a68a828e0":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b472a75379aa42cea711326149d86124":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_4dec0cb8b9aa4af1b87aa2a435f0513b","IPY_MODEL_44a995d1af68417abfefc62f59da6085","IPY_MODEL_e0e529c9bab44ebdaa9bd5deb7eb32bd"],"layout":"IPY_MODEL_9195a98238784c4dbc31432a68a828e0"}},"c41931b067ad4678aaca5ce1d784635d":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"DescriptionStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d512b036bb2c4d0980bcc572c3d9c45d":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"de1628ef8b074b4d8c48363365b0c7a0":{"model_module":"@jupyter-widgets/base","model_module_version":"1.2.0","model_name":"LayoutModel","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e0e529c9bab44ebdaa9bd5deb7eb32bd":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HTMLModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_3206b3fbf3a24ba3ad4dbdb3bc99d89b","placeholder":"​","style":"IPY_MODEL_45097845718b42de96a5bc519b94e92f","value":" 192/15326 [00:13&lt;17:56, 14.05it/s]"}},"e52eb06aa0d749e1951533c1f93fbdbe":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"ProgressStyleModel","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"edc8e63704e74e79856d5164ccece54c":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"FloatProgressModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_de1628ef8b074b4d8c48363365b0c7a0","max":36147,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e52eb06aa0d749e1951533c1f93fbdbe","value":36147}},"f3b64886743942ed9280e91a91995b0b":{"model_module":"@jupyter-widgets/controls","model_module_version":"1.5.0","model_name":"HBoxModel","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_29b75d41e77e4487b242209ced94a97c","IPY_MODEL_edc8e63704e74e79856d5164ccece54c","IPY_MODEL_57bf002662204c1f8caea318653fc6bb"],"layout":"IPY_MODEL_660d5a80a16740e3a6a02dee2bdd0e59"}}}}},"nbformat":4,"nbformat_minor":0}
